package 变长滑动窗口1

import "slices"

// 理解错误 可以删min值
//
//	func minRemoval(nums []int, k int) (ans int) {
//		m, lim := 0, 0
//		n := len(nums)
//		for right := 0; right < n; right++ {
//			m = min(m, nums[right])
//			lim = k * m
//		}
//		for i := 0; i < n; i++ {
//			if nums[i] > lim {
//				ans++
//			}
//		}
//		return
//	}
func minRemoval(nums []int, k int) int {
	slices.Sort(nums)
	maxSave, left := 0, 0
	for i, mx := range nums {
		for nums[left]*k < mx {
			left++
		}
		maxSave = max(maxSave, i-left+1)
	}
	return len(nums) - maxSave
}
